struct LeftOver {
  /* @offset(0) */
  boneTextureWidth : f32,
  /* @offset(16) */
  biasAndScaleSM : vec3<f32>,
  /* @offset(32) */
  depthValuesSM : vec2<f32>,
}

struct Internals {
  /* @offset(0) */
  yFactor_ : f32,
  /* @offset(4) */
  textureOutputHeight_ : f32,
}

var<private> vDepthMetricSM : f32;

@group(1) @binding(4) var<uniform> x_17 : LeftOver;

var<private> glFragColor : vec4<f32>;

@group(1) @binding(0) var<uniform> x_41 : Internals;

fn main_1() {
  var depthSM : f32;
  let x_11 : f32 = vDepthMetricSM;
  depthSM = x_11;
  let x_24 : f32 = x_17.biasAndScaleSM.z;
  let x_25 : f32 = depthSM;
  depthSM = clamp(exp(-(min(87.0f, (x_24 * x_25)))), 0.0f, 1.0f);
  let x_36 : f32 = depthSM;
  glFragColor = vec4<f32>(x_36, 1.0f, 1.0f, 1.0f);
  return;
}

struct main_out {
  @location(0)
  glFragColor_1 : vec4<f32>,
}

@fragment
fn main(@location(0) vDepthMetricSM_param : f32) -> main_out {
  vDepthMetricSM = vDepthMetricSM_param;
  main_1();
  return main_out(glFragColor);
}